In [1]:
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt

import warnings
warnings.filterwarnings("ignore")

from multiprocessing import cpu_count, Pool
In [2]:
tr = pd.read_pickle('../data/train.pkl')
tr_log = pd.read_pickle('../data/train_log.pkl')
In [3]:
tr.head()
Out[3]:
object_id ra decl gal_l gal_b ddf hostgal_specz hostgal_photoz hostgal_photoz_err distmod mwebv target
0 615 349.046051 -61.943836 320.796530 -51.753706 1 0.0000 0.0000 0.0000 NaN 0.017 92
1 713 53.085938 -27.784405 223.525509 -54.460748 1 1.8181 1.6267 0.2552 45.4063 0.007 88
2 730 33.574219 -6.579593 170.455585 -61.548219 1 0.2320 0.2262 0.0157 40.2561 0.021 42
3 745 0.189873 -45.586655 328.254458 -68.969298 1 0.3037 0.2813 1.1523 40.7951 0.007 90
4 1124 352.711273 -63.823658 316.922299 -51.059403 1 0.1934 0.2415 0.0176 40.4166 0.024 90
In [4]:
tr.tail()
Out[4]:
object_id ra decl gal_l gal_b ddf hostgal_specz hostgal_photoz hostgal_photoz_err distmod mwebv target
7843 130739978 26.718750 -14.940303 172.342697 -72.255675 0 0.0000 0.0000 0.0000 NaN 0.013 65
7844 130755807 120.101349 -62.696659 275.742955 -16.509746 0 0.1725 2.5606 1.1146 46.6108 0.136 90
7845 130762946 203.108109 -55.682144 308.728904 6.727511 0 0.0000 0.0000 0.0000 NaN 0.430 16
7846 130772921 79.101562 -35.501846 239.172243 -33.827844 0 0.0000 0.0000 0.0000 NaN 0.034 65
7847 130779836 301.992188 -17.426323 25.102988 -24.511101 0 0.0000 0.0000 0.0000 NaN 0.091 6
In [5]:
tr_log.head(20)
Out[5]:
object_id mjd passband flux flux_err detected
0 615 59750.421875 2 -544.810303 3.622952 1
1 615 59750.429688 1 -816.434326 5.553370 1
2 615 59750.437500 3 -471.385529 3.801213 1
3 615 59750.445312 4 -388.984985 11.395031 1
4 615 59752.406250 2 -681.858887 4.041204 1
5 615 59752.414062 1 -1061.457031 6.472994 1
6 615 59752.421875 3 -524.954590 3.552751 1
7 615 59752.433594 4 -393.480225 3.599346 1
8 615 59752.445312 5 -355.886780 10.421921 1
9 615 59767.296875 2 -548.013550 3.462291 1
10 615 59767.304688 1 -815.188599 5.293019 1
11 615 59767.312500 3 -475.516052 3.340643 1
12 615 59767.324219 4 -405.663818 3.496113 1
13 615 59767.335938 5 -421.199066 6.377517 1
14 615 59770.218750 2 -554.903198 3.927843 1
15 615 59770.226562 1 -820.042786 5.875329 1
16 615 59770.234375 3 -477.004730 3.736262 1
17 615 59770.246094 4 -400.270386 3.834955 1
18 615 59770.253906 5 -415.286896 7.435979 1
19 615 59779.320312 2 -630.523682 4.333287 1
In [6]:
df = tr_log[tr_log.object_id==615]
In [7]:
df['date'] = df.mjd.astype(int)
In [8]:
pd.pivot_table(df, index=['date'], columns=['passband'], values=['flux']).plot(marker="o", legend=True)
plt.legend(bbox_to_anchor=(1.05, 1), loc='upper left')
Out[8]:
<matplotlib.legend.Legend at 0x7feb6fdcb860>
In [9]:
pd.pivot_table(df, index=['date'], columns=['passband'], values=['flux']).reset_index().head()
Out[9]:
date flux
passband 0 1 2 3 4 5
0 59750 NaN -816.434326 -544.810303 -471.385529 -388.984985 NaN
1 59752 NaN -1061.457031 -681.858887 -524.954590 -393.480225 -355.886780
2 59767 NaN -815.188599 -548.013550 -475.516052 -405.663818 -421.199066
3 59770 NaN -820.042786 -554.903198 -477.004730 -400.270386 -415.286896
4 59779 NaN -921.002502 -630.523682 -518.533997 -422.184509 -422.815094
In [17]:
def plt_obj(oid=None, save=False, path=None, norm=False):
    if oid is None:
        oid = np.random.choice(tr.object_id)
    df = tr_log[tr_log.object_id==oid]
    if norm:
        df.flux /= df.flux.max()
    target = tr.loc[tr.object_id==oid, 'target'].values[0]
    photoz = tr.loc[tr.object_id==oid, 'hostgal_photoz'].values[0]
    
    df['date'] = df.mjd.astype(int)
    
    pd.pivot_table(df, index=['date'], columns=['passband'], values=['flux']).plot(marker="o", legend=True)
    plt.legend(bbox_to_anchor=(1.05, 1), loc='upper left')
    plt.title(f'oid:{oid}    target:{target}    photoz:{photoz}')
    if save==True and path is not None:
        plt.savefig(path)
    return
In [11]:
plt_obj(615)
In [18]:
plt_obj(615, norm=True)
In [12]:
classes = [6, 15, 16, 42, 52, 53, 62, 64, 65, 67, 88, 90, 92, 95]
li = []
for c in classes:
    li += tr[tr.target==c].sample(20).object_id.tolist()
In [16]:
for i in li:
    plt_obj(i)
In [51]:
for args in argss:
    multi(args)
<matplotlib.figure.Figure at 0x7fd9ea5061d0>
<matplotlib.figure.Figure at 0x7fda17c83978>
<matplotlib.figure.Figure at 0x7fd9ea572828>
<matplotlib.figure.Figure at 0x7fda17c59fd0>
<matplotlib.figure.Figure at 0x7fda17d58160>
<matplotlib.figure.Figure at 0x7fda17ce0438>
<matplotlib.figure.Figure at 0x7fd9ea420fd0>
<matplotlib.figure.Figure at 0x7fda17d0b080>
<matplotlib.figure.Figure at 0x7fd9ea4200f0>
<matplotlib.figure.Figure at 0x7fda17d87d68>
<matplotlib.figure.Figure at 0x7fda0d1a6630>
<matplotlib.figure.Figure at 0x7fda17c837f0>
<matplotlib.figure.Figure at 0x7fda17c30c88>
<matplotlib.figure.Figure at 0x7fd9f6ff08d0>
<matplotlib.figure.Figure at 0x7fda17d87b70>
<matplotlib.figure.Figure at 0x7fd9ea07f390>
<matplotlib.figure.Figure at 0x7fd9ea0b4978>
<matplotlib.figure.Figure at 0x7fd9f711ada0>
<matplotlib.figure.Figure at 0x7fd9ea1e1470>
<matplotlib.figure.Figure at 0x7fd9ea074a90>
<matplotlib.figure.Figure at 0x7fda17d69cc0>
<matplotlib.figure.Figure at 0x7fda17c18da0>
<matplotlib.figure.Figure at 0x7fda17c07828>
<matplotlib.figure.Figure at 0x7fda0d193fd0>
<matplotlib.figure.Figure at 0x7fd9ea07f4e0>
<matplotlib.figure.Figure at 0x7fda17bfc3c8>
<matplotlib.figure.Figure at 0x7fd9ea0743c8>
<matplotlib.figure.Figure at 0x7fda17c30f60>
<matplotlib.figure.Figure at 0x7fd9e9fc1f28>
<matplotlib.figure.Figure at 0x7fda17bc9240>
<matplotlib.figure.Figure at 0x7fd9ea149390>
<matplotlib.figure.Figure at 0x7fda0d1fe6a0>
<matplotlib.figure.Figure at 0x7fda17c07c50>
<matplotlib.figure.Figure at 0x7fd9ea644668>
<matplotlib.figure.Figure at 0x7fd9ec40a048>
<matplotlib.figure.Figure at 0x7fd9ea1ebcf8>
<matplotlib.figure.Figure at 0x7fda17be3c88>
<matplotlib.figure.Figure at 0x7fd9ea644710>
<matplotlib.figure.Figure at 0x7fda17cf48d0>
<matplotlib.figure.Figure at 0x7fd9f6fbdf28>
<matplotlib.figure.Figure at 0x7fda17c2ee48>
<matplotlib.figure.Figure at 0x7fd9f7364400>
<matplotlib.figure.Figure at 0x7fd9ea6440f0>
<matplotlib.figure.Figure at 0x7fda17c2e908>
<matplotlib.figure.Figure at 0x7fd9ea1496a0>
<matplotlib.figure.Figure at 0x7fd9ec40a7f0>
<matplotlib.figure.Figure at 0x7fd9ea02b860>
<matplotlib.figure.Figure at 0x7fd9ea586710>
<matplotlib.figure.Figure at 0x7fd9ea02b320>
<matplotlib.figure.Figure at 0x7fda17c18b00>
<matplotlib.figure.Figure at 0x7fda17bedcf8>
<matplotlib.figure.Figure at 0x7fd9ea06a3c8>
<matplotlib.figure.Figure at 0x7fda17c9fef0>
<matplotlib.figure.Figure at 0x7fd9ea149ef0>
<matplotlib.figure.Figure at 0x7fd9ec40ab70>
<matplotlib.figure.Figure at 0x7fd9ea27f828>
<matplotlib.figure.Figure at 0x7fd9ea462860>
<matplotlib.figure.Figure at 0x7fd9f6fc3c18>
<matplotlib.figure.Figure at 0x7fd9ea3cecc0>
<matplotlib.figure.Figure at 0x7fd9ea5865c0>
<matplotlib.figure.Figure at 0x7fda17c662e8>
<matplotlib.figure.Figure at 0x7fd9ea11df28>
<matplotlib.figure.Figure at 0x7fd9e9fca8d0>
<matplotlib.figure.Figure at 0x7fd9e9f6d9b0>
<matplotlib.figure.Figure at 0x7fd9ea1d6a20>
<matplotlib.figure.Figure at 0x7fd9f77981d0>
<matplotlib.figure.Figure at 0x7fd9ea7a0f60>
<matplotlib.figure.Figure at 0x7fd9ea1eb3c8>
<matplotlib.figure.Figure at 0x7fd9ea3cee48>
<matplotlib.figure.Figure at 0x7fd9ea0b9b70>
<matplotlib.figure.Figure at 0x7fd9ea117588>
<matplotlib.figure.Figure at 0x7fd9ea60edd8>
<matplotlib.figure.Figure at 0x7fda17bed978>
<matplotlib.figure.Figure at 0x7fd9ea0c0710>
<matplotlib.figure.Figure at 0x7fd9ea462828>
<matplotlib.figure.Figure at 0x7fd9ea7a0e10>
<matplotlib.figure.Figure at 0x7fd9f7798eb8>
<matplotlib.figure.Figure at 0x7fd9e9fd7940>
<matplotlib.figure.Figure at 0x7fd9ea0b93c8>
<matplotlib.figure.Figure at 0x7fd9ea27f390>
<matplotlib.figure.Figure at 0x7fd9ea0e2c50>
<matplotlib.figure.Figure at 0x7fd9f7426f98>
<matplotlib.figure.Figure at 0x7fd9ea117b70>
<matplotlib.figure.Figure at 0x7fd9ea7a0b38>
<matplotlib.figure.Figure at 0x7fd9f73caeb8>
<matplotlib.figure.Figure at 0x7fd9f71fd080>
<matplotlib.figure.Figure at 0x7fd9f741a4a8>
<matplotlib.figure.Figure at 0x7fd9ea68ada0>
<matplotlib.figure.Figure at 0x7fd9f770f668>
<matplotlib.figure.Figure at 0x7fd9ea0c0898>
<matplotlib.figure.Figure at 0x7fd9ea4625c0>
<matplotlib.figure.Figure at 0x7fd9f73ca588>
<matplotlib.figure.Figure at 0x7fd9f770fc50>
<matplotlib.figure.Figure at 0x7fd9ea7a06a0>
<matplotlib.figure.Figure at 0x7fda0c013e10>
<matplotlib.figure.Figure at 0x7fd9ea0c0ef0>
<matplotlib.figure.Figure at 0x7fd9f770fe80>
<matplotlib.figure.Figure at 0x7fda0c013080>
<matplotlib.figure.Figure at 0x7fd9f77e29b0>
<matplotlib.figure.Figure at 0x7fd9f7474278>
<matplotlib.figure.Figure at 0x7fd9f770f358>
<matplotlib.figure.Figure at 0x7fd9ea0c0128>
<matplotlib.figure.Figure at 0x7fda0c01be48>
<matplotlib.figure.Figure at 0x7fd9f77cd400>
<matplotlib.figure.Figure at 0x7fd9f7364358>
<matplotlib.figure.Figure at 0x7fd9f71aab00>
<matplotlib.figure.Figure at 0x7fd9ea0c05c0>
<matplotlib.figure.Figure at 0x7fd9f774f320>
<matplotlib.figure.Figure at 0x7fd9e9fca320>
<matplotlib.figure.Figure at 0x7fd9f74b77b8>
<matplotlib.figure.Figure at 0x7fd9f71c6e80>
<matplotlib.figure.Figure at 0x7fd9e9fcac88>
<matplotlib.figure.Figure at 0x7fd9ea049fd0>
<matplotlib.figure.Figure at 0x7fd9f764c8d0>
<matplotlib.figure.Figure at 0x7fd9f7192160>
<matplotlib.figure.Figure at 0x7fd9ea1b62e8>
<matplotlib.figure.Figure at 0x7fd9f74a4630>
<matplotlib.figure.Figure at 0x7fd9e9fcac18>
<matplotlib.figure.Figure at 0x7fd9ea049a90>
<matplotlib.figure.Figure at 0x7fd9f7420c18>
<matplotlib.figure.Figure at 0x7fd9f71aa828>
<matplotlib.figure.Figure at 0x7fd9f76369b0>
<matplotlib.figure.Figure at 0x7fd9f74204e0>
<matplotlib.figure.Figure at 0x7fd9f74267f0>
<matplotlib.figure.Figure at 0x7fda0c0da358>
<matplotlib.figure.Figure at 0x7fd9f7636550>
<matplotlib.figure.Figure at 0x7fd9f7454d68>
<matplotlib.figure.Figure at 0x7fd9f7192f98>
<matplotlib.figure.Figure at 0x7fd9f7420208>
<matplotlib.figure.Figure at 0x7fd9f7669358>
<matplotlib.figure.Figure at 0x7fd9f7420f98>
<matplotlib.figure.Figure at 0x7fd9f7474f60>
<matplotlib.figure.Figure at 0x7fd9f73e6f28>
<matplotlib.figure.Figure at 0x7fda0c179d30>
<matplotlib.figure.Figure at 0x7fd9f74b7e48>
<matplotlib.figure.Figure at 0x7fd9f764c588>
<matplotlib.figure.Figure at 0x7fd9f7454a20>
<matplotlib.figure.Figure at 0x7fd9f73e6cc0>
<matplotlib.figure.Figure at 0x7fd9f764c2b0>
<matplotlib.figure.Figure at 0x7fd9f7192828>
<matplotlib.figure.Figure at 0x7fd9f7156710>
<matplotlib.figure.Figure at 0x7fd9ea058f60>
<matplotlib.figure.Figure at 0x7fd9f76f2ba8>
<matplotlib.figure.Figure at 0x7fd9f75ce978>
<matplotlib.figure.Figure at 0x7fd9ea1b6860>
<matplotlib.figure.Figure at 0x7fd9f71566d8>
<matplotlib.figure.Figure at 0x7fd9f75dff28>
<matplotlib.figure.Figure at 0x7fd9ea1b6128>
<matplotlib.figure.Figure at 0x7fd9f74b7588>
<matplotlib.figure.Figure at 0x7fd9f75dfc88>
<matplotlib.figure.Figure at 0x7fd9f760b9b0>
<matplotlib.figure.Figure at 0x7fd9ea058b70>
<matplotlib.figure.Figure at 0x7fd9f70e7c88>
<matplotlib.figure.Figure at 0x7fd9ea4da978>
<matplotlib.figure.Figure at 0x7fd9f7156e10>
<matplotlib.figure.Figure at 0x7fd9ea4daf98>
<matplotlib.figure.Figure at 0x7fd9f75ce198>
<matplotlib.figure.Figure at 0x7fd9ea4efac8>
<matplotlib.figure.Figure at 0x7fd9f760b400>
<matplotlib.figure.Figure at 0x7fda0c18e5c0>
<matplotlib.figure.Figure at 0x7fd9ea1a3f60>
<matplotlib.figure.Figure at 0x7fd9f75df1d0>
<matplotlib.figure.Figure at 0x7fda0c168a58>
<matplotlib.figure.Figure at 0x7fd9ea0af550>
<matplotlib.figure.Figure at 0x7fda0c18ee48>
<matplotlib.figure.Figure at 0x7fd9ea0b3048>
<matplotlib.figure.Figure at 0x7fd9f7175940>
<matplotlib.figure.Figure at 0x7fd9ea0b3320>
<matplotlib.figure.Figure at 0x7fd9ea4ca898>
<matplotlib.figure.Figure at 0x7fd9ea058128>
<matplotlib.figure.Figure at 0x7fd9f75df710>
<matplotlib.figure.Figure at 0x7fd9f71759e8>
<matplotlib.figure.Figure at 0x7fd9f76f23c8>
<matplotlib.figure.Figure at 0x7fd9f764c080>
<matplotlib.figure.Figure at 0x7fd9ea4ca048>
<matplotlib.figure.Figure at 0x7fd9ea0cbe10>
<matplotlib.figure.Figure at 0x7fd9ea185ba8>
<matplotlib.figure.Figure at 0x7fd9f7175ef0>
<matplotlib.figure.Figure at 0x7fd9f7200f28>
<matplotlib.figure.Figure at 0x7fd9ea55cb70>
<matplotlib.figure.Figure at 0x7fd9ea457400>
<matplotlib.figure.Figure at 0x7fd9ea1e7a20>
<matplotlib.figure.Figure at 0x7fd9ea0ff160>
<matplotlib.figure.Figure at 0x7fd9f7175710>
<matplotlib.figure.Figure at 0x7fd9ea4fc320>
<matplotlib.figure.Figure at 0x7fd9ea1a3898>
<matplotlib.figure.Figure at 0x7fda0c179e48>
<matplotlib.figure.Figure at 0x7fd9ea0af358>
<matplotlib.figure.Figure at 0x7fd9ea1ee0f0>
<matplotlib.figure.Figure at 0x7fd9ea553f60>
<matplotlib.figure.Figure at 0x7fd9ea185ac8>
<matplotlib.figure.Figure at 0x7fd9ea06cf98>
<matplotlib.figure.Figure at 0x7fd9f76f2198>
<matplotlib.figure.Figure at 0x7fd9ea4fcb00>
<matplotlib.figure.Figure at 0x7fd9f7647f98>
<matplotlib.figure.Figure at 0x7fd9f72004e0>
<matplotlib.figure.Figure at 0x7fd9ea0af908>
<matplotlib.figure.Figure at 0x7fd9ea2da518>
<matplotlib.figure.Figure at 0x7fd9ea1a3f28>
<matplotlib.figure.Figure at 0x7fd9ea57b8d0>
<matplotlib.figure.Figure at 0x7fd9ea51c5c0>
<matplotlib.figure.Figure at 0x7fd9ea185710>
<matplotlib.figure.Figure at 0x7fd9ea1c8358>
<matplotlib.figure.Figure at 0x7fd9ea576860>
<matplotlib.figure.Figure at 0x7fd9ea1e7940>
<matplotlib.figure.Figure at 0x7fd9ea1c8a20>
<matplotlib.figure.Figure at 0x7fd9ea55c198>
<matplotlib.figure.Figure at 0x7fd9f76c5b70>
<matplotlib.figure.Figure at 0x7fda0c159710>
<matplotlib.figure.Figure at 0x7fda0c159da0>
<matplotlib.figure.Figure at 0x7fd9ea52c2e8>
<matplotlib.figure.Figure at 0x7fd9ea55cc88>
<matplotlib.figure.Figure at 0x7fd9f70e7dd8>
<matplotlib.figure.Figure at 0x7fd9f76c53c8>
<matplotlib.figure.Figure at 0x7fd9ea537f60>
<matplotlib.figure.Figure at 0x7fd9ea52cf60>
<matplotlib.figure.Figure at 0x7fd9ea00a4e0>
<matplotlib.figure.Figure at 0x7fd9ea2f3b00>
<matplotlib.figure.Figure at 0x7fd9ea447080>
<matplotlib.figure.Figure at 0x7fd9ea02d5f8>
<matplotlib.figure.Figure at 0x7fd9ea2221d0>
<matplotlib.figure.Figure at 0x7fd9ea2eba20>
<matplotlib.figure.Figure at 0x7fd9ea2daf98>
<matplotlib.figure.Figure at 0x7fd9ea447358>
<matplotlib.figure.Figure at 0x7fd9ea209f98>
<matplotlib.figure.Figure at 0x7fd9ea2da080>
<matplotlib.figure.Figure at 0x7fd9ea14a048>
<matplotlib.figure.Figure at 0x7fd9ea51ca20>
<matplotlib.figure.Figure at 0x7fd9ea1859b0>
<matplotlib.figure.Figure at 0x7fd9ea537390>
<matplotlib.figure.Figure at 0x7fd9f76c5860>
<matplotlib.figure.Figure at 0x7fd9ea537438>
<matplotlib.figure.Figure at 0x7fd9ea1ee0b8>
<matplotlib.figure.Figure at 0x7fd9ea5bf390>
<matplotlib.figure.Figure at 0x7fd9ea447978>
<matplotlib.figure.Figure at 0x7fd9ea5a5080>
<matplotlib.figure.Figure at 0x7fd9ea1ee9b0>
<matplotlib.figure.Figure at 0x7fd9ea222668>
<matplotlib.figure.Figure at 0x7fd9ea4476d8>
<matplotlib.figure.Figure at 0x7fd9ea51a5c0>
<matplotlib.figure.Figure at 0x7fd9ea266668>
<matplotlib.figure.Figure at 0x7fd9ea2f3550>
<matplotlib.figure.Figure at 0x7fd9ea265e80>
<matplotlib.figure.Figure at 0x7fd9ea52cb38>
<matplotlib.figure.Figure at 0x7fd9ea2d0b70>
<matplotlib.figure.Figure at 0x7fd9ea5bf2e8>
<matplotlib.figure.Figure at 0x7fd9ea5a59b0>
<matplotlib.figure.Figure at 0x7fd9ea27ccc0>
<matplotlib.figure.Figure at 0x7fd9ea2d0080>
<matplotlib.figure.Figure at 0x7fd9ea5bf828>
<matplotlib.figure.Figure at 0x7fd9ea0ffd30>
<matplotlib.figure.Figure at 0x7fd9ea14a7b8>
<matplotlib.figure.Figure at 0x7fd9ea265278>
<matplotlib.figure.Figure at 0x7fd9ea5a5cf8>
<matplotlib.figure.Figure at 0x7fd9ea248940>
<matplotlib.figure.Figure at 0x7fd9ea479358>
<matplotlib.figure.Figure at 0x7fd9f76c57b8>
<matplotlib.figure.Figure at 0x7fd9ea27c1d0>
<matplotlib.figure.Figure at 0x7fd9ea5a5b70>
<matplotlib.figure.Figure at 0x7fd9ea248dd8>
<matplotlib.figure.Figure at 0x7fd9ea2685f8>
<matplotlib.figure.Figure at 0x7fd9ea1549e8>
<matplotlib.figure.Figure at 0x7fd9ea0149b0>
<matplotlib.figure.Figure at 0x7fd9ea2d7ef0>
<matplotlib.figure.Figure at 0x7fd9ea154748>
<matplotlib.figure.Figure at 0x7fd9ea5aa080>
<matplotlib.figure.Figure at 0x7fd9ea2d7fd0>
<matplotlib.figure.Figure at 0x7fd9e9baff98>
<matplotlib.figure.Figure at 0x7fd9ea51a080>
<matplotlib.figure.Figure at 0x7fd9ea5bf7b8>
<matplotlib.figure.Figure at 0x7fd9ea5aa208>
<matplotlib.figure.Figure at 0x7fd9ea2041d0>
<matplotlib.figure.Figure at 0x7fd9ea662ba8>
<matplotlib.figure.Figure at 0x7fd9ea266710>
<matplotlib.figure.Figure at 0x7fd9ea2d75f8>
<matplotlib.figure.Figure at 0x7fd9ea60d4e0>
<matplotlib.figure.Figure at 0x7fd9ea64b5c0>
<matplotlib.figure.Figure at 0x7fd9ea0146d8>
<matplotlib.figure.Figure at 0x7fd9e9b8bba8>
<matplotlib.figure.Figure at 0x7fd9e9baf2b0>
<matplotlib.figure.Figure at 0x7fd9ea64bcc0>